<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>PowerVR SDK</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
<table width="100%">
  <tr>
    <td width="33%">
      <p align="left">&nbsp;<a href="http://www.imgtec.com"><img border="0" src="IMGLogo.jpg" width="200" height="30"></a></p>
    </td>
    <td width="33%">
      <p align="center"><font color="#808080" face="Arial" size="2">PowerVR Software Development Kit</a></font></p>
    </td>
    <td width="34%">
      <p align="right"><a href="http://www.powervr.com"><img border="0" src="PVRlogo.jpg" width="200" height="27"></a></p>
    </td>
  </tr>
</table>
<hr>
</head><body>
<!-- Generated by Doxygen 1.3.6 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>PVRTQuaternion.h File Reference</h1><code>#include "<a class="el" href="PVRTGlobal_8h-source.html">PVRTGlobal.h</a>"</code><br>
<code>#include "<a class="el" href="PVRTMatrix_8h-source.html">PVRTMatrix.h</a>"</code><br>

<p>
Include dependency graph for PVRTQuaternion.h:<p><center><img src="PVRTQuaternion_8h__incl.png" border="0" usemap="#PVRTQuaternion.h_map" alt="Include dependency graph"></center>
<map name="PVRTQuaternion.h_map">
<area href="PVRTGlobal_8h.html" shape="rect" coords="20,81,127,108" alt="">
<area href="PVRTMatrix_8h.html" shape="rect" coords="66,156,172,183" alt="">
</map>

<p>
This graph shows which files directly or indirectly include this file:<p><center><img src="PVRTQuaternion_8h__dep__incl.png" border="0" usemap="#PVRTQuaternion.hdep_map" alt="Included by dependency graph"></center>
<map name="PVRTQuaternion.hdep_map">
<area href="OGLES2Tools_8h.html" shape="rect" coords="15,7,132,34" alt="">
</map>

<p>
<a href="PVRTQuaternion_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>struct &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a></td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>struct &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a></td></tr>

<tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>#define&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTQuaternion_8h.html#a0">PVRTMatrixQuaternionIdentity</a>&nbsp;&nbsp;&nbsp;PVRTMatrixQuaternionIdentityF</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>#define&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTQuaternion_8h.html#a1">PVRTMatrixQuaternionRotationAxis</a>&nbsp;&nbsp;&nbsp;PVRTMatrixQuaternionRotationAxisF</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>#define&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTQuaternion_8h.html#a2">PVRTMatrixQuaternionToAxisAngle</a>&nbsp;&nbsp;&nbsp;PVRTMatrixQuaternionToAxisAngleF</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>#define&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTQuaternion_8h.html#a3">PVRTMatrixQuaternionSlerp</a>&nbsp;&nbsp;&nbsp;PVRTMatrixQuaternionSlerpF</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>#define&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTQuaternion_8h.html#a4">PVRTMatrixQuaternionNormalize</a>&nbsp;&nbsp;&nbsp;PVRTMatrixQuaternionNormalizeF</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>#define&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTQuaternion_8h.html#a5">PVRTMatrixRotationQuaternion</a>&nbsp;&nbsp;&nbsp;PVRTMatrixRotationQuaternionF</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>#define&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTQuaternion_8h.html#a6">PVRTMatrixQuaternionMultiply</a>&nbsp;&nbsp;&nbsp;PVRTMatrixQuaternionMultiplyF</td></tr>

<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>typedef <a class="el" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTQuaternion_8h.html#a7">PVRTQUATERNION</a></td></tr>

<tr><td colspan=2><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTQuaternion_8h.html#a8">PVRTMatrixQuaternionIdentityF</a> (<a class="el" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a> &amp;qOut)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTQuaternion_8h.html#a9">PVRTMatrixQuaternionIdentityX</a> (<a class="el" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a> &amp;qOut)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTQuaternion_8h.html#a10">PVRTMatrixQuaternionRotationAxisF</a> (<a class="el" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a> &amp;qOut, const <a class="el" href="structPVRTVECTOR3f.html">PVRTVECTOR3f</a> &amp;vAxis, const float fAngle)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTQuaternion_8h.html#a11">PVRTMatrixQuaternionRotationAxisX</a> (<a class="el" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a> &amp;qOut, const <a class="el" href="structPVRTVECTOR3x.html">PVRTVECTOR3x</a> &amp;vAxis, const int fAngle)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTQuaternion_8h.html#a12">PVRTMatrixQuaternionToAxisAngleF</a> (const <a class="el" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a> &amp;qIn, <a class="el" href="structPVRTVECTOR3f.html">PVRTVECTOR3f</a> &amp;vAxis, float &amp;fAngle)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTQuaternion_8h.html#a13">PVRTMatrixQuaternionToAxisAngleX</a> (const <a class="el" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a> &amp;qIn, <a class="el" href="structPVRTVECTOR3x.html">PVRTVECTOR3x</a> &amp;vAxis, int &amp;fAngle)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTQuaternion_8h.html#a14">PVRTMatrixQuaternionSlerpF</a> (<a class="el" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a> &amp;qOut, const <a class="el" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a> &amp;qA, const <a class="el" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a> &amp;qB, const float t)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTQuaternion_8h.html#a15">PVRTMatrixQuaternionSlerpX</a> (<a class="el" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a> &amp;qOut, const <a class="el" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a> &amp;qA, const <a class="el" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a> &amp;qB, const int t)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTQuaternion_8h.html#a16">PVRTMatrixQuaternionNormalizeF</a> (<a class="el" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a> &amp;quat)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTQuaternion_8h.html#a17">PVRTMatrixQuaternionNormalizeX</a> (<a class="el" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a> &amp;quat)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTQuaternion_8h.html#a18">PVRTMatrixRotationQuaternionF</a> (<a class="el" href="classPVRTMATRIXf.html">PVRTMATRIXf</a> &amp;mOut, const <a class="el" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a> &amp;quat)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTQuaternion_8h.html#a19">PVRTMatrixRotationQuaternionX</a> (<a class="el" href="classPVRTMATRIXx.html">PVRTMATRIXx</a> &amp;mOut, const <a class="el" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a> &amp;quat)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTQuaternion_8h.html#a20">PVRTMatrixQuaternionMultiplyF</a> (<a class="el" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a> &amp;qOut, const <a class="el" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a> &amp;qA, const <a class="el" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a> &amp;qB)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="PVRTQuaternion_8h.html#a21">PVRTMatrixQuaternionMultiplyX</a> (<a class="el" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a> &amp;qOut, const <a class="el" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a> &amp;qA, const <a class="el" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a> &amp;qB)</td></tr>

</table>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="a0" doxytag="PVRTQuaternion.h::PVRTMatrixQuaternionIdentity" ></a><p>
<br><br><h3>PVRTMatrixQuaternionIdentity</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define PVRTMatrixQuaternionIdentity&nbsp;&nbsp;&nbsp;PVRTMatrixQuaternionIdentityF
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a class="anchor" name="a6" doxytag="PVRTQuaternion.h::PVRTMatrixQuaternionMultiply" ></a><p>
<br><br><h3>PVRTMatrixQuaternionMultiply</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define PVRTMatrixQuaternionMultiply&nbsp;&nbsp;&nbsp;PVRTMatrixQuaternionMultiplyF
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a class="anchor" name="a4" doxytag="PVRTQuaternion.h::PVRTMatrixQuaternionNormalize" ></a><p>
<br><br><h3>PVRTMatrixQuaternionNormalize</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define PVRTMatrixQuaternionNormalize&nbsp;&nbsp;&nbsp;PVRTMatrixQuaternionNormalizeF
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a class="anchor" name="a1" doxytag="PVRTQuaternion.h::PVRTMatrixQuaternionRotationAxis" ></a><p>
<br><br><h3>PVRTMatrixQuaternionRotationAxis</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define PVRTMatrixQuaternionRotationAxis&nbsp;&nbsp;&nbsp;PVRTMatrixQuaternionRotationAxisF
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a class="anchor" name="a3" doxytag="PVRTQuaternion.h::PVRTMatrixQuaternionSlerp" ></a><p>
<br><br><h3>PVRTMatrixQuaternionSlerp</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define PVRTMatrixQuaternionSlerp&nbsp;&nbsp;&nbsp;PVRTMatrixQuaternionSlerpF
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a class="anchor" name="a2" doxytag="PVRTQuaternion.h::PVRTMatrixQuaternionToAxisAngle" ></a><p>
<br><br><h3>PVRTMatrixQuaternionToAxisAngle</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define PVRTMatrixQuaternionToAxisAngle&nbsp;&nbsp;&nbsp;PVRTMatrixQuaternionToAxisAngleF
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a class="anchor" name="a5" doxytag="PVRTQuaternion.h::PVRTMatrixRotationQuaternion" ></a><p>
<br><br><h3>PVRTMatrixRotationQuaternion</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define PVRTMatrixRotationQuaternion&nbsp;&nbsp;&nbsp;PVRTMatrixRotationQuaternionF
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="a7" doxytag="PVRTQuaternion.h::PVRTQUATERNION" ></a><p>
<br><br><h3>PVRTQUATERNION</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> typedef <a class="el" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a> <a class="el" href="structPVRTQUATERNIONf.html">PVRTQUATERNION</a>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="a8" doxytag="PVRTQuaternion.h::PVRTMatrixQuaternionIdentityF" ></a><p>
<br><br><h3>PVRTMatrixQuaternionIdentityF</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void PVRTMatrixQuaternionIdentityF </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a> &amp;&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>qOut</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Outputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>qOut</em>&nbsp;</td><td>Identity quaternion </td></tr>
  </table>
</dl>
<dl compact><dt><b>Description:</b></dt><dd>Sets the quaternion to (0, 0, 0, 1), the identity quaternion. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a9" doxytag="PVRTQuaternion.h::PVRTMatrixQuaternionIdentityX" ></a><p>
<br><br><h3>PVRTMatrixQuaternionIdentityX</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void PVRTMatrixQuaternionIdentityX </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a> &amp;&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>qOut</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Outputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>qOut</em>&nbsp;</td><td>Identity quaternion </td></tr>
  </table>
</dl>
<dl compact><dt><b>Description:</b></dt><dd>Sets the quaternion to (0, 0, 0, 1), the identity quaternion. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a20" doxytag="PVRTQuaternion.h::PVRTMatrixQuaternionMultiplyF" ></a><p>
<br><br><h3>PVRTMatrixQuaternionMultiplyF</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void PVRTMatrixQuaternionMultiplyF </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>qOut</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>qA</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>qB</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Outputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>qOut</em>&nbsp;</td><td>Resulting quaternion </td></tr>
  </table>
</dl>
<dl compact><dt><b>Inputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>qA</em>&nbsp;</td><td>First quaternion to multiply </td></tr>
    <tr><td valign=top><em>qB</em>&nbsp;</td><td>Second quaternion to multiply </td></tr>
  </table>
</dl>
<dl compact><dt><b>Description:</b></dt><dd>Multiply quaternion A with quaternion B and return the result in qOut. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a21" doxytag="PVRTQuaternion.h::PVRTMatrixQuaternionMultiplyX" ></a><p>
<br><br><h3>PVRTMatrixQuaternionMultiplyX</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void PVRTMatrixQuaternionMultiplyX </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>qOut</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>qA</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>qB</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Outputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>qOut</em>&nbsp;</td><td>Resulting quaternion </td></tr>
  </table>
</dl>
<dl compact><dt><b>Inputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>qA</em>&nbsp;</td><td>First quaternion to multiply </td></tr>
    <tr><td valign=top><em>qB</em>&nbsp;</td><td>Second quaternion to multiply </td></tr>
  </table>
</dl>
<dl compact><dt><b>Description:</b></dt><dd>Multiply quaternion A with quaternion B and return the result in qOut. Input quaternions must be normalized. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a16" doxytag="PVRTQuaternion.h::PVRTMatrixQuaternionNormalizeF" ></a><p>
<br><br><h3>PVRTMatrixQuaternionNormalizeF</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void PVRTMatrixQuaternionNormalizeF </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a> &amp;&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>quat</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Modified:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>quat</em>&nbsp;</td><td>Vector to normalize </td></tr>
  </table>
</dl>
<dl compact><dt><b>Description:</b></dt><dd>Normalize quaternion. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a17" doxytag="PVRTQuaternion.h::PVRTMatrixQuaternionNormalizeX" ></a><p>
<br><br><h3>PVRTMatrixQuaternionNormalizeX</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void PVRTMatrixQuaternionNormalizeX </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a> &amp;&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>quat</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Modified:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>quat</em>&nbsp;</td><td>Vector to normalize </td></tr>
  </table>
</dl>
<dl compact><dt><b>Description:</b></dt><dd>Normalize quaternion. Original quaternion is scaled down prior to be normalized in order to avoid overflow issues. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a10" doxytag="PVRTQuaternion.h::PVRTMatrixQuaternionRotationAxisF" ></a><p>
<br><br><h3>PVRTMatrixQuaternionRotationAxisF</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void PVRTMatrixQuaternionRotationAxisF </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>qOut</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structPVRTVECTOR3f.html">PVRTVECTOR3f</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>vAxis</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const float&nbsp;</td>
          <td class="mdname" nowrap> <em>fAngle</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Outputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>qOut</em>&nbsp;</td><td>Rotation quaternion </td></tr>
  </table>
</dl>
<dl compact><dt><b>Inputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>vAxis</em>&nbsp;</td><td>Axis to rotate around </td></tr>
    <tr><td valign=top><em>fAngle</em>&nbsp;</td><td>Angle to rotate </td></tr>
  </table>
</dl>
<dl compact><dt><b>Description:</b></dt><dd>Create quaternion corresponding to a rotation of fAngle radians around submitted vector. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a11" doxytag="PVRTQuaternion.h::PVRTMatrixQuaternionRotationAxisX" ></a><p>
<br><br><h3>PVRTMatrixQuaternionRotationAxisX</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void PVRTMatrixQuaternionRotationAxisX </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>qOut</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structPVRTVECTOR3x.html">PVRTVECTOR3x</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>vAxis</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const int&nbsp;</td>
          <td class="mdname" nowrap> <em>fAngle</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Outputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>qOut</em>&nbsp;</td><td>Rotation quaternion </td></tr>
  </table>
</dl>
<dl compact><dt><b>Inputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>vAxis</em>&nbsp;</td><td>Axis to rotate around </td></tr>
    <tr><td valign=top><em>fAngle</em>&nbsp;</td><td>Angle to rotate </td></tr>
  </table>
</dl>
<dl compact><dt><b>Description:</b></dt><dd>Create quaternion corresponding to a rotation of fAngle radians around submitted vector. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a14" doxytag="PVRTQuaternion.h::PVRTMatrixQuaternionSlerpF" ></a><p>
<br><br><h3>PVRTMatrixQuaternionSlerpF</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void PVRTMatrixQuaternionSlerpF </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>qOut</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>qA</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>qB</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const float&nbsp;</td>
          <td class="mdname" nowrap> <em>t</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Outputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>qOut</em>&nbsp;</td><td>Result of the interpolation </td></tr>
  </table>
</dl>
<dl compact><dt><b>Inputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>qA</em>&nbsp;</td><td>First quaternion to interpolate from </td></tr>
    <tr><td valign=top><em>qB</em>&nbsp;</td><td>Second quaternion to interpolate from </td></tr>
    <tr><td valign=top><em>t</em>&nbsp;</td><td>Coefficient of interpolation </td></tr>
  </table>
</dl>
<dl compact><dt><b>Description:</b></dt><dd>Perform a Spherical Linear intERPolation between quaternion A and quaternion B at time t. t must be between 0.0f and 1.0f </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a15" doxytag="PVRTQuaternion.h::PVRTMatrixQuaternionSlerpX" ></a><p>
<br><br><h3>PVRTMatrixQuaternionSlerpX</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void PVRTMatrixQuaternionSlerpX </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>qOut</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>qA</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>qB</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const int&nbsp;</td>
          <td class="mdname" nowrap> <em>t</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Outputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>qOut</em>&nbsp;</td><td>Result of the interpolation </td></tr>
  </table>
</dl>
<dl compact><dt><b>Inputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>qA</em>&nbsp;</td><td>First quaternion to interpolate from </td></tr>
    <tr><td valign=top><em>qB</em>&nbsp;</td><td>Second quaternion to interpolate from </td></tr>
    <tr><td valign=top><em>t</em>&nbsp;</td><td>Coefficient of interpolation </td></tr>
  </table>
</dl>
<dl compact><dt><b>Description:</b></dt><dd>Perform a Spherical Linear intERPolation between quaternion A and quaternion B at time t. t must be between 0.0f and 1.0f Requires input quaternions to be normalized </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a12" doxytag="PVRTQuaternion.h::PVRTMatrixQuaternionToAxisAngleF" ></a><p>
<br><br><h3>PVRTMatrixQuaternionToAxisAngleF</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void PVRTMatrixQuaternionToAxisAngleF </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>qIn</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structPVRTVECTOR3f.html">PVRTVECTOR3f</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>vAxis</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>float &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>fAngle</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Inputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>qIn</em>&nbsp;</td><td>Quaternion to transform </td></tr>
  </table>
</dl>
<dl compact><dt><b>Outputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>vAxis</em>&nbsp;</td><td>Axis of rotation </td></tr>
    <tr><td valign=top><em>fAngle</em>&nbsp;</td><td>Angle of rotation </td></tr>
  </table>
</dl>
<dl compact><dt><b>Description:</b></dt><dd>Convert a quaternion to an axis and angle. Expects a unit quaternion. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a13" doxytag="PVRTQuaternion.h::PVRTMatrixQuaternionToAxisAngleX" ></a><p>
<br><br><h3>PVRTMatrixQuaternionToAxisAngleX</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void PVRTMatrixQuaternionToAxisAngleX </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>qIn</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structPVRTVECTOR3x.html">PVRTVECTOR3x</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>vAxis</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>int &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>fAngle</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Inputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>qIn</em>&nbsp;</td><td>Quaternion to transform </td></tr>
  </table>
</dl>
<dl compact><dt><b>Outputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>vAxis</em>&nbsp;</td><td>Axis of rotation </td></tr>
    <tr><td valign=top><em>fAngle</em>&nbsp;</td><td>Angle of rotation </td></tr>
  </table>
</dl>
<dl compact><dt><b>Description:</b></dt><dd>Convert a quaternion to an axis and angle. Expects a unit quaternion. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="a18" doxytag="PVRTQuaternion.h::PVRTMatrixRotationQuaternionF" ></a><p>
<br><br><h3>PVRTMatrixRotationQuaternionF</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void PVRTMatrixRotationQuaternionF </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="classPVRTMATRIXf.html">PVRTMATRIXf</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>mOut</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structPVRTQUATERNIONf.html">PVRTQUATERNIONf</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>quat</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Outputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>mOut</em>&nbsp;</td><td>Resulting rotation matrix </td></tr>
  </table>
</dl>
<dl compact><dt><b>Inputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>quat</em>&nbsp;</td><td>Quaternion to transform </td></tr>
  </table>
</dl>
<dl compact><dt><b>Description:</b></dt><dd>Create rotation matrix from submitted quaternion. Assuming the quaternion is of the form [X Y Z W]:</dd></dl>
| 2 2 | | 1 - 2Y - 2Z 2XY - 2ZW 2XZ + 2YW 0 | | | | 2 2 | M = | 2XY + 2ZW 1 - 2X - 2Z 2YZ - 2XW 0 | | | | 2 2 | | 2XZ - 2YW 2YZ + 2XW 1 - 2X - 2Y 0 | | | | 0 0 0 1 |     </td>
  </tr>
</table>
<a class="anchor" name="a19" doxytag="PVRTQuaternion.h::PVRTMatrixRotationQuaternionX" ></a><p>
<br><br><h3>PVRTMatrixRotationQuaternionX</h3><br><div>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void PVRTMatrixRotationQuaternionX </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="classPVRTMATRIXx.html">PVRTMATRIXx</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>mOut</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structPVRTQUATERNIONx.html">PVRTQUATERNIONx</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>quat</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<dl compact><dt><b>Outputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>mOut</em>&nbsp;</td><td>Resulting rotation matrix </td></tr>
  </table>
</dl>
<dl compact><dt><b>Inputs:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign=top><em>quat</em>&nbsp;</td><td>Quaternion to transform </td></tr>
  </table>
</dl>
<dl compact><dt><b>Description:</b></dt><dd>Create rotation matrix from submitted quaternion. Assuming the quaternion is of the form [X Y Z W]:</dd></dl>
| 2 2 | | 1 - 2Y - 2Z 2XY - 2ZW 2XZ + 2YW 0 | | | | 2 2 | M = | 2XY + 2ZW 1 - 2X - 2Z 2YZ - 2XW 0 | | | | 2 2 | | 2XZ - 2YW 2YZ + 2XW 1 - 2X - 2Y 0 | | | | 0 0 0 1 |     </td>
  </tr>
</table>
<br>
<br>
<P align=left><FONT size=2><STRONG><A 
   href="http://www.imgtec.com/powervr/insider/legal/index.asp">Copyright</A> � 
   1999-2008, Imagination Technologies Ltd.</STRONG></FONT></P>
<hr>
<address style="align: left;"><small><FONT color=f0f>
Generated by <a href="http://www.doxygen.org/index.html">DOXYGEN</a> 1.3.6</small></address>
</body>
</html>
